package com.atguigu.state;

/**
 * @Description: 状态模式
 * @Author lixiaolong
 * @Date 2023/10/13
 */
public class ClientTest {

    /**
     * 环境角色，持有 state 实例 定义当前状态，
     * state 抽象状态角色，定义 不同状态与环境角色对应的抽象方法
     * 具体状态角色，实现抽象方法，定义每个状态对应的行为，
     *
     * @param args
     */
    public static void main(String[] args) {
        // 创建活动对象，奖品有1个奖品
        RaffleActivity activity = new RaffleActivity(1);

        // 我们连续抽300次奖
        for (int i = 0; i < 30; i++) {
            System.out.println("--------第" + (i + 1) + "次抽奖----------");
            // 参加抽奖，第一步点击扣除积分
            activity.debuctMoney();

            // 第二步抽奖
            activity.raffle();
        }
    }

}
